package modelo;

import java.util.ArrayList;

import vista.VentanaPrincipal;
import vista.VistaMina;
import fiuba.algo3.titiritero.modelo.ObjetoPosicionable;

public abstract class Mina implements ObjetoPosicionable {
	
	private OndaExpansiva ondaExpansiva;
	private int costo;
	protected boolean detonada;
	protected Posicion posicion;
	protected ArrayList<Nave> naves = new ArrayList<>();
	private VistaMina vistaMina;
	
	public abstract void actualizarDispositivo();
	
	public Mina(Posicion posicion, int radioOndaExpansiva, int costo) {
		this.detonada = false;
		this.posicion = posicion;
		this.costo = costo;
		ondaExpansiva = new OndaExpansiva(posicion, radioOndaExpansiva);
	}
	
	public boolean detonada() {
		return detonada;
	}
	
	public int obtenerCosto() {
		return costo;
	}
	
	public void agregarObjetivo(Nave nave) {
		naves.add(nave);
	}

	public OndaExpansiva obtenerOndaExpansiva() {
		return ondaExpansiva;
	}
	
	@Override
	public int getX() {
		return ((posicion.getColumna()-1)*VentanaPrincipal.LADO)+VentanaPrincipal.LADO/4;
		
	}

	@Override
	public int getY() {
		return ((posicion.getFila()-1)*VentanaPrincipal.LADO)+VentanaPrincipal.LADO/4;
	}

	public VistaMina getVistaMina() {
		return vistaMina;
	}

	public void setVistaMina(VistaMina vistaMina) {
		this.vistaMina = vistaMina;
	}

}
